Phase Transition In Computing
=What is a Phase Transition?= Water boiling or melting is going through a phase transition. After a long period of apparently gradual change, there is an abrupt change of a different kind. In spite of very rapid progress, computing has been changing in a gradual way since the 60's. We're ready for a big jump. =Why a Phase Transition in Computing?= The way we use Silicon in a typical PC is less efficient than it could be. We already know how to do it better, indeed we have done for several decades. Back in the 80's companies like AMT produced 'smart memory', memory with integrated processing. This was used in advanced scientific and radar signal-processing applications. In the near future (5 years) we are likely to see more hybrid PC systems where processing is offloaded into memory. One route to this is via graphics cards. This is already happening. The competition for the fastest PC based database server was won by a database running on a hijacked graphics card. In time this will cease to be unusual. We'll have libraries for searching and sorting that run on graphics cards using the smart memory. Related technology includes FPGAs which integrate wide-bus memory, general purpose configurable FPGA fabric and PowerPC processor all on the same chip. The trade off present in current technology gives us a choice between 1GB of 'dumb' memory or 100MB of 'smart' memory in the same chip area. Now the astonishing claim. Done right we can see a 100 fold improvement in performance in traditional computers on the most time critical parts without a significant advance in the underlying Silicon technology or increase in cost. The main advances required to achieve this will be relatively small changes in computer architecture, and relatively large changes in computer languages and libraries. : The required advances in software are not so huge in the applications which will most benefit from removing the Von-Neumann bottleneck - searching and sorting. We can use existing technology there, replacing just the back end of the database. ---- ---- DateFormat = yyyy ImageSize = width:600 height:auto barincrement:25 PlotArea = left:20 right:20 bottom:30 top:15 Colors = id:canvas value:rgb(0.97,0.97,0.97) id:grid1 value:rgb(0.80,0.80,0.80) id:grid2 value:rgb(0.86,0.86,0.86) id:Timeperiod value:rgb(0.80,0.80,0.99) id:Timeperiod2 value:rgb(0.86,0.56,0.56) id:gray value:gray(0.7) id:lightblue value:rgb(0.60,0.99,0.99) Period = from:1970 till:2100 TimeAxis = orientation:horizontal format:yyyy ScaleMajor = unit:year increment:10 start:1970 gridcolor:grid1 ScaleMinor = unit:year increment:10 start:1970 gridcolor:grid2 AlignBars = justify BackgroundColors = canvas:canvas bars:canvas BarData= bar:Timeperiod barset:Timeperiod2 PlotData= width:25 fontsize:S textcolor:black align:center bar:Timeperiod color:Timeperiod shift:(0,-3) from:start till:end text: "Memory Technologies" width:24 fontsize:S textcolor:black anchor:from align:left color:Timeperiod barset:Timeperiod2 at:1989 text: "1989: Content Addressable Memory" at:2000 text: "June 2000: Google indexes 1,000,000,000 Pages" at:2002 text: "2002: First IRAM chip prototype IRAM: computational RAM" at:2003 text: "2003: Adoption of RFID tags" at:2006 text: "2006: 60Gb iPods (using Toshiba Minidrive)" at:2010 text: "2010: Holographic Computing" at:2030 text: "2030: Turing test passed (phone-bot)" at:2050 text: "2050: [dust|Smart 'Dust'" at:2070 text: "2070: AI-neural interface" * Note - if you update the timeline, there may be considerable delay before it shows correctly again. * Content Addressable Memory - An important step in smart memory. * Smart dust - Model of distributed processing without a rigid framework. * Wikipedia:computational_RAM IRAM - computational RAM ---- ---- Links * ASQ - Ask, Simplify, Query. A 'way out' computer language designed arround productivity of programmer time. The IDE queries you to help you refine your intentions. Code snippets (mangling of existing fragments of code) is core element. These are searched for on the internet. Way out nad extreme? Yes. But it makes you question your assumptions about what a programming language should look like. ---- (editors: this uses m:EasyTimeline) Category:Informatics Category:Computer